package com.yanghui.dtracing.core.plugin;

import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.matcher.ElementMatcher;

/**
 * 实例方法拦截点接口
 */
public interface IInstanceMethodInterceptPoint {

    /**
     * 实例方法匹配规则
     * @return
     */
    ElementMatcher<MethodDescription> buildMethodsMatcher();

    /**
     * 实例方法拦截器类
     * @return
     */
    String methodInterceptor();

    /**
     * 是否需要重写入参
     * @return
     */
    default boolean isOverrideArgs(){
        return false;
    }
}
